﻿Public Class frmQuanLyNha


    Private Sub frmQuanLyNha_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        dtNgayDang.Value = Date.Now

        Dim listNha As New DataTable()
        listNha = NhaBUS.GetAll()
        gvDanhSachNha.DataSource = listNha

        Dim listLoaiNha As New List(Of LoaiNhaDTO)
        listLoaiNha = LoaiNhaBUS.GetAll()
        cbxLoaiNha.DataSource = listLoaiNha
        cbxLoaiNha.ValueMember = "iMaLoaiNha"
        cbxLoaiNha.DisplayMember = "strTenLoaiNha"

        Dim listQuan As New List(Of QuanDTO)
        listQuan = QuanBUS.GetAll()
        cbxQuan.DataSource = listQuan
        cbxQuan.ValueMember = "iMaQuan"
        cbxQuan.DisplayMember = "strTenQuan"

        cbxTimLoaiNha.DataSource = listLoaiNha
        cbxTimLoaiNha.ValueMember = "iMaLoaiNha"
        cbxTimLoaiNha.DisplayMember = "strTenLoaiNha"

        cbxTimQuan.DataSource = listQuan
        cbxTimQuan.ValueMember = "iMaQuan"
        cbxTimQuan.DisplayMember = "strTenQuan"

        Dim dt As DataTable = New DataTable()
        dt = NguoiDangBUS.LayDSHoTen()
        cbxNguoidang.DataSource = dt
        cbxNguoidang.DisplayMember = "MaNguoiDang"

        btnLuuLai.Enabled = False
    End Sub

    Private Sub btnThemNha_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnThemNha.Click
        Dim macuoi As String = NhaBUS.LayMa_Nha_Cuoi()
        txtMaNha.Text = NhaBUS.TinhMaNha(macuoi)
        txtSoNha.Text = ""
        txtDuong.Text = ""
        cbxQuan.SelectedIndex = 0
        cbxLoaiNha.SelectedIndex = 0
        txtGia.Text = ""
        txtTieuDe.Text = ""
        dtNgayDang.Value = Date.Now
        txtDienTich.Text = ""

        txtSoNha.Focus()

        btnLuuLai.Enabled = True
        btnXoaNha.Enabled = False
        btnSuaNha.Enabled = False
   End Sub

    Private Sub gvDanhSachNha_SelectionChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles gvDanhSachNha.SelectionChanged
        txtMaNha.Text = gvDanhSachNha.CurrentRow.Cells("MaNha").Value
        txtSoNha.Text = gvDanhSachNha.CurrentRow.Cells("SoNha").Value
        txtDuong.Text = gvDanhSachNha.CurrentRow.Cells("Duong").Value
        cbxQuan.Text = gvDanhSachNha.CurrentRow.Cells("Quan").Value
        cbxLoaiNha.Text = gvDanhSachNha.CurrentRow.Cells("LoaiNha").Value
        txtGia.Text = String.Format("{0:0,0}", gvDanhSachNha.CurrentRow.Cells("Gia").Value)
        txtDienTich.Text = gvDanhSachNha.CurrentRow.Cells("DienTich").Value
        txtTieuDe.Text = gvDanhSachNha.CurrentRow.Cells("TieuDe").Value
        dtNgayDang.Value = gvDanhSachNha.CurrentRow.Cells("NgayDang").Value
        cbxNguoidang.Text = gvDanhSachNha.CurrentRow.Cells("MaNguoiDang").Value
    End Sub

    Private Sub btnLuuLai_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnLuuLai.Click
        If Not NhaBUS.KiemTraDayDu(txtSoNha.Text, txtDuong.Text, txtGia.Text, txtDienTich.Text, txtTieuDe .Text) Then
            Dim iSlNhaTaiQuan As Integer, iSLNhaToiDaMoiQuan As Integer

            iSlNhaTaiQuan = NhaBUS.LaySLNhaTaiQuan(cbxQuan.SelectedValue)
            iSLNhaToiDaMoiQuan = ThamSoBUS.LaySLNhaToiDa()
            If iSlNhaTaiQuan < iSLNhaToiDaMoiQuan Then
                Dim nha As NhaDTO = New NhaDTO()

                nha.strMaNha = txtMaNha.Text
                nha.strSoNha = txtSoNha.Text
                nha.strDuong = txtDuong.Text
                nha.iDienTich = txtDienTich.Text
                nha.iGia = txtGia.Text
                nha.isTinhTrang = False
                nha.isTamXoa = False
                nha.iMaLoaiNha = cbxLoaiNha.SelectedValue
                nha.iMaQuan = cbxQuan.SelectedValue
                nha.strMaNguoiDang = cbxNguoidang.Text
                nha.strTieuDe = txtTieuDe.Text
                nha.dNgayDang = dtNgayDang.Text

                NhaBUS.Insert(nha)

                MessageBox.Show("Bạn đã thêm Thành công một Nhà", "THÔNG BÁO")
                Dim listNha As New DataTable()
                listNha = NhaBUS.GetAll()
                gvDanhSachNha.DataSource = listNha
            Else
                MessageBox.Show("Xin lỗi!!Quận mà bạn chọn đã đủ số lượng nhà quy định. Vui lòng chọn Quận khác!", "THÔNG BÁO")
            End If
        Else
            MessageBox.Show("Bạn Chưa nhập đủ các thông tin bắt buộc!", "THÔNG BÁO")
        End If

        btnLuuLai.Enabled = False
        btnXoaNha.Enabled = True
        btnSuaNha.Enabled = True
    End Sub

    Private Sub btnXoaNha_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnXoaNha.Click
        If IsNothing(gvDanhSachNha.SelectedRows) Then
            MessageBox.Show("Bạn chưa chọn Nhà nào để Xóa!!", "THÔNG BÁO")
        Else
            Dim idMaNha As String = txtMaNha.Text
            Dim istamxoa As Boolean = True

            NguoiDangBUS.Update_TamXoa(idMaNha, istamxoa)

            MessageBox.Show("Dữ liệu đã được đánh dấu Xóa!!", "THÔNG BÁO")
            Dim listNha As New DataTable()
            listNha = NhaBUS.GetAll()
            gvDanhSachNha.DataSource = listNha
    
        End If
    End Sub

    Private Sub btnSuaNha_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSuaNha.Click
        If Not NhaBUS.KiemTraDayDu(txtSoNha.Text, txtDuong.Text, txtGia.Text, txtDienTich.Text, txtTieuDe.Text) Then
            Dim iSlNhaTaiQuan As Integer, iSLNhaToiDaMoiQuan As Integer

            iSlNhaTaiQuan = NhaBUS.LaySLNhaTaiQuan(cbxQuan.SelectedValue)
            iSLNhaToiDaMoiQuan = ThamSoBUS.LaySLNhaToiDa()
            If iSlNhaTaiQuan < iSLNhaToiDaMoiQuan Then
                Dim nha As NhaDTO = New NhaDTO()

                nha.strMaNha = txtMaNha.Text
                nha.strSoNha = txtSoNha.Text
                nha.strDuong = txtDuong.Text
                nha.iDienTich = txtDienTich.Text
                nha.iGia = txtGia.Text
                nha.isTinhTrang = False
                nha.isTamXoa = False
                nha.iMaLoaiNha = cbxLoaiNha.SelectedValue
                nha.iMaQuan = cbxQuan.SelectedValue
                nha.strMaNguoiDang = cbxNguoidang.Text
                nha.strTieuDe = txtTieuDe.Text
                nha.dNgayDang = dtNgayDang.Text

                NhaBUS.Update(nha)

                MessageBox.Show("Bạn đã thêm Thành công một Nhà", "THÔNG BÁO")
                Dim listNha As New DataTable()
                listNha = NhaBUS.GetAll()
                gvDanhSachNha.DataSource = listNha
            Else
                MessageBox.Show("Xin lỗi!!Quận mà bạn chọn đã đủ số lượng nhà quy định. Vui lòng chọn Quận khác!", "THÔNG BÁO")
            End If
        Else
            MessageBox.Show("Bạn Chưa nhập đủ các thông tin bắt buộc!", "THÔNG BÁO")
        End If
    End Sub

    Private Sub cbxLuaChon_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cbxLuaChon.SelectedIndexChanged
        Dim luachon As Integer = cbxLuaChon.SelectedIndex

        Select Case luachon
            Case 0
                lbQuan.Enabled = True
                cbxTimQuan.Enabled = True

                lbLoaiNha.Enabled = False
                cbxTimLoaiNha.Enabled = False

                lbTinhTrang.Enabled = False
                rbtTimDaThue.Enabled = False
                rbtTimChuaThue.Enabled = False
            Case 1
                lbLoaiNha.Enabled = True
                cbxTimLoaiNha.Enabled = True

                lbQuan.Enabled = False
                cbxTimQuan.Enabled = False

                lbTinhTrang.Enabled = False
                rbtTimDaThue.Enabled = False
                rbtTimChuaThue.Enabled = False
            Case 2
                lbTinhTrang.Enabled = True
                rbtTimDaThue.Enabled = True
                rbtTimChuaThue.Enabled = True

                lbQuan.Enabled = False
                cbxTimQuan.Enabled = False

                lbLoaiNha.Enabled = False
                cbxTimLoaiNha.Enabled = False
        End Select
    End Sub

    Private Sub btnTimKiem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnTimKiem.Click
        Dim luachon As Integer = cbxLuaChon.SelectedIndex

        Select Case luachon
            Case 0
                Dim listNha As New DataTable()
                listNha = NhaBUS.TimKiemNhaTheoQuan(cbxTimQuan.SelectedValue)
                gvDanhSachNha.DataSource = listNha
            Case 1
                Dim listNha As New DataTable()
                listNha = NhaBUS.TimKiemNhaTheoLoaiNha(cbxTimLoaiNha.SelectedValue)
                gvDanhSachNha.DataSource = listNha
            Case 2
                Dim listNha As New DataTable()
                Dim tinhtrang As Boolean
                If rbtTimDaThue.Checked = True Then
                    tinhtrang = True
                ElseIf rbtTimChuaThue.Checked = True Then
                    tinhtrang = False
                End If

                listNha = NhaBUS.TimKiemNhaTheoTinhTrang(tinhtrang)
                gvDanhSachNha.DataSource = listNha

        End Select
    End Sub

    Private Sub btnTatCa_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnTatCa.Click
        Dim listNha As New DataTable()
        listNha = NhaBUS.GetAll()
        gvDanhSachNha.DataSource = listNha
    End Sub

    Private Sub gvDanhSachNha_CellFormatting(ByVal sender As System.Object, ByVal e As System.Windows.Forms.DataGridViewCellFormattingEventArgs) Handles gvDanhSachNha.CellFormatting
        If gvDanhSachNha.Columns(e.ColumnIndex).Name = "Gia" Then
            e.CellStyle.Format = "#,##"
        End If
    End Sub
End Class